There are many devices for which an interface is developed and used to configure the devices. For instance, a network device might have an interface table with interface information such as the number of bytes transferred into and out of the device. Additionally, the network device could have a port table that also has some relationship with the interface table. There could also be routing tables or other information for the network device.
Originally, the configuration of network devices and other devices was manually performed. An interface was designed for the device and a programmer accessed the interface to set up or modify the configuration for the device.
Recent attempts to alleviate these problems have been made. It is now possible to describe a network device and its interface by using a data model that is then accessed via, for instance, simple network management protocol (SNMP) commands. The data model can model, for instance, the port table and interface tables and the relationship therebetween. SNMP commands can be used to access the data model and configure the network device.
Even though SNMP has been beneficial, managing a large number of network devices is still labor intensive. For instance, a network device made by one manufacturer may need its own data model and this data model might not be applicable to another network device made by another manufacturer. More importantly, a data model of a network device generally contains many configuration elements. As part of configuring the network device, there is an interplay between configuration elements, and this interplay is not necessarily apparent. For example, a port could be deleted as part of the configuration. Other configuration elements could be affected by the port deletion, and the other configuration elements should be updated based on the port deletion. This process is now performed mainly through heuristics and manual intervention usually on a device by device basis.
A need therefore exists for techniques that make it easier to configure and maintain devices such as network devices.